package com.jrx.anytxn.param.mapper.ext;

import com.jrx.anytxn.param.entity.PrInvestorLimit;
import com.jrx.anytxn.param.mapper.base.PrInvestorLimitMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 出资方额度 mapper接口扩展
 *
 * @author 黄秋平
 * @date 2020-05-25 10:12
 **/
public interface ExtPrInvestorLimitMapper extends PrInvestorLimitMapper {

    /**
     * 根据出资方ID和租户ID查询相关列表
     * @param investorId
     * @param tenantId
     * @return
     */
    List<PrInvestorLimit> selectByInvestorIdAndTenId(@Param("investorId") String investorId, @Param("tenantId") String tenantId);

    /**
     * 根据出资方ID和租户ID删除
     * @param investorId
     * @param tenantId
     * @return
     */
    int deleteByInvestorIdAndTenId(@Param("investorId") String investorId, @Param("tenantId") String tenantId);

    /**
     * 查询所有出资方额度定义
     *
     * @return List<PrInvestorLimit> 出资方额度定义
     * @author liuyang
     * @date 2020-06-01
     */
    List<PrInvestorLimit> selectAllInvestorLimit();

    /**
     * 批量更新出资方额度定义（批量可用）
     *
     * @param investorLimits 出资方额度定义
     * @return int 更新的条数
     * @author liuyang
     * @date  2020-06-01
     */
    int batchUpdateInvestorLimitForBatch(List<PrInvestorLimit> investorLimits);

    /**
     * 根据出资方ID，产品id和租户ID查询出资方额度信息
     *
     * @param investorId 出资方id
     * @param productId 产品id
     * @param tenantId 租户id
     * @return PrInvestorLimit 出资方额度
     * @author liuyang
     * @date  2020-06-08
     */
    PrInvestorLimit selectByInvestorIdAndProductId(@Param("investorId") String investorId, @Param("productId") String productId, @Param("tenantId") String tenantId);

    /**
     * 根据字段是否为空更新
     *
     * @param record PrInvestorLimit
     * @return int 更新的条数
     * @author liuyang
     * @date  2020-06-08
     */
    int extUpdateByPrimaryKeySelective(PrInvestorLimit record);
}
